#include "widget.h"
#include <QPushButton>//按钮空间的头文件
#include <mypushbutton.h>
#include <QDebug>

//命名规范
//类名 首字母大写，单词和单词之间首字母大写
//函数名 变量名称 首字母小写，单词和单词之间首字母大写

//快捷键
//注释 crtl+/
//运行 ctrl+r
//编译 ctrl+b
//字体缩放 ctrl+鼠标滚轮
//查找 ctrl+f
//整行移动 ctrl+shift+↑或者↓
//帮助文档 F1
//自动对齐 ctrl+i
//同名之间的.h和.cpp切换 F4

//帮助文档 第一种方式 F1；第二种方式 左侧按钮；第三种 D:\qt\6.0.2\mingw81_64\bin

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    //创建一个按钮
    QPushButton * btn =new QPushButton;
    //btn->show(); //show以顶层方式弹出窗口控件
    //让btn依赖在Widget窗口中
    btn->setParent(this);

    //显示文本
    btn->setText("第一个按钮");

    //创建第二个按钮
    QPushButton * btn2=new QPushButton("第二个按钮",this);

    //移动btn2按钮
    btn2->move(100,100);

    //重置窗口大小
    resize(600,400);

    //设置窗口标题
    setWindowTitle("第一个窗口");

    //设置固定的窗口大小
    setFixedSize(600,400);

    //创建一个自己的按钮对象
    MyPushButton * myBtn = new MyPushButton;
    myBtn->setText("我自己的按钮");

    myBtn->move(200,0);
    myBtn->setParent(this); //设置到对象树中

    //需求：点击我的按钮，关闭窗口
    //connect(信号发送者，发送的具体信号，信号接受者，信号的处理(槽))
    //信号槽的优点：松散耦合 信号发送端和信号接受端本身是没有联系的，通过connect连接，将两端耦合在一起
    //参数1 信号发送者 参数2 发送的信号（函数的地址） 参数3 信号的接受者 参数4 处理的槽函数
    //信号 signals；槽 slots
    connect(myBtn,&MyPushButton::clicked,this,&Widget::close);
    connect(btn,&QPushButton::clicked,this,&Widget::close);

}

Widget::~Widget()
{
    qDebug() << "Widget的析构调用";
}

